<template>
<!-- 第十三步：给li绑定移入移出事件 -->
    <li 
    @mouseenter="mouseChangeHandle('enter')" 
    @mouseleave="mouseChangeHandle('leave')" 
    :class="isEnter?'active':'' ">
        <label>
          <!-- 第六步：将得到的数据渲染到item中 -->
          <!-- 这里的checked属性因为用户会修改多选框的选中状态，而props不能直接被修改，所以不能使用v-model，要使用v-bind进行数据的绑定 -->
          <!-- 第十六步：接受到app组件中传过来的single方法后，绑定点击事件，并把当前item的id传过去 -->
            <input type="checkbox" :checked="done" @click="singleCheckHandle(id)" />
            <!--  -->
            <span>{{thing}}</span>
        </label>
        <!-- 第十九步： 给删除按钮绑定点击事件，并把id传给app组件-->
        <button class="btn btn-danger" @click="deleteSingleHandle(id)">删除</button>
    </li>
</template>

<script>
export default {
  name:'Item',
  //第五步：在item子组件中，接收List传过来的值
  props:['id','thing','done','singleCheckHandle','deleteSingleHandle'],
  data(){
    return{
      isEnter:false
    }
  },
  methods:{
    // 第十四步，在移入移出事件函数中，接收移入和移出传入的type，如果是移入事件，就让isEnter为true，否则为false
    mouseChangeHandle(type){
        this.isEnter=type==='enter'
    }
  }
}
</script>

<style scoped>
/*item*/
li {
  list-style: none;
  height: 36px;
  line-height: 36px;
  padding: 0 5px;
  border-bottom: 1px solid #ddd;
}

li label {
  float: left;
  cursor: pointer;
}

li label li input {
  vertical-align: middle;
  margin-right: 6px;
  position: relative;
  top: -1px;
}

li button {
  float: right;
  display: none;
  margin-top: 3px;
}

li:before {
  content: initial;
}

li:last-child {
  border-bottom: none;
}
/* 第十二步：给active类名添加样式 做鼠标悬浮特效 */
li.active{
  background: pink;
}
li.active button{
  display:block
}
</style>